#include <iostream>
using namespace std;

const int kMaxN = 1e5 + 10;
const int kMaxM = 1e5 + 10;

long long a[kMaxN], diff[kMaxN];
int l[kMaxM], r[kMaxM], d[kMaxM];
int diff_b[kMaxM], b[kMaxM];

int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int n, m, k;

  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n; i++) {
    diff[i] = a[i] - a[i - 1];
  }

  for (int i = 1; i <= m; i++) {
    cin >> l[i] >> r[i] >> d[i];
  }

  for (int i = 0; i < k; i++) {
    int x, y;

    cin >> x >> y;
    diff_b[x]++;
    diff_b[y + 1]--;
  }

  for (int i = 1; i <= m; i++) {
    b[i] = b[i - 1] + diff_b[i];
  }

  for (int i = 1; i <= m; i++) {
    diff[l[i]] += (long long)d[i] * b[i];
    diff[r[i] + 1] -= (long long)d[i] * b[i];
  }
  for (int i = 1; i <= n; i++) {
    a[i] = a[i - 1] + diff[i];
  }

  for (int i = 1; i <= n; i++) {
    cout << a[i] << " ";
  }
  cout << "\n";
  return 0;
}